package com.weixing.mall.pay.channel.wx;

import cn.hutool.core.util.NumberUtil;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.weixing.mall.pay.NotifyResp;
import lombok.Data;

import java.math.BigDecimal;

/**
 * @ClassName WxNotifyResp
 * @Description
 * @Author Small
 * @Date 2019/12/3 19:20
 * @Version 1.0
 **/
@Data
public class WxNotifyResp implements NotifyResp{
    /**
     * 返回状态码
     */
    @XStreamAlias("return_code")
    private String returnCode;

    /**
     * 返回信息
     */
    @XStreamAlias("return_msg")
    private String returnMsg;
    /**
     * 公众账号ID
     */
    private String appid;
    /**
     * 商户号
     */
    @XStreamAlias("mch_id")
    private String mchId;

    /**
     * 设备号
     */
    @XStreamAlias("device_info")
    private String deviceInfo;
    /**
     * 随机字符串
     */
    @XStreamAlias("nonce_str")
    private String nonceStr;
    /**
     * 签名
     */
    private String sign;
    /**
     * 签名类型
     */
    @XStreamAlias("sign_type")
    private String signType;
    /**
     * 业务结果
     */
    @XStreamAlias("result_code")
    private String resultCode;
    /**
     * 错误代码
     */
    @XStreamAlias("err_code")
    private String errCode;
    /**
     * 错误代码描述
     */
    @XStreamAlias("err_code_des")
    private String errCodeDes;
    /**
     * 用户标识
     */
    private String openid;
    /**
     * 是否关注公众账号
     */
    @XStreamAlias("is_subscribe")
    private String isSubscribe;
    /**
     * 交易类型
     */
    @XStreamAlias("trade_type")
    private String tradeType;
    /**
     * 付款银行
     */
    @XStreamAlias("bank_type")
    private String bankType;

    /**
     * 订单金额
     */
    @XStreamAlias("total_fee")
    private int totalFee;

    /**
     * 应结订单金额
     */
    @XStreamAlias("settlement_total_fee")
    private int settlementTotalFee;

    /**
     *  货币种类
     */
    @XStreamAlias("fee_type")
    private String feeType;

    /**
     *  现金支付金额
     */
    @XStreamAlias("cash_fee")
    private int cashFee;

    /**
     *   现金支付货币类型
     */
    @XStreamAlias("cash_fee_type")
    private String cashFeeType;


    /**
     *    微信支付订单号
     */
    @XStreamAlias("transaction_id")
    private String tradeNo;

    /**
     *    商户订单号
     */
    @XStreamAlias("out_trade_no")
    private String outTradeNo;

    /**
     *    支付完成时间
     */
    @XStreamAlias("time_end")
    private String timeEnd;


    @Override
    public BigDecimal getTotalAmount() {
        return BigDecimal.valueOf(NumberUtil.div(this.totalFee,100));
    }
}
